{{tag> oneiric precise carte_graphique programmation nvidia nvidia.run}}
----

====== CUDA ======
<note info>**Tout ce qui concerne OpenCL est à enrichir.**</note>

{{:nvidia:nvidia_cuda_logo.jpg?100&nolink |Cuda}}

CUDA est une architecture de traitement parallèle développée par NVIDIA permettant de décupler les performances de calcul du système en exploitant la puissance des processeurs graphiques (GPU).

Cette page explique comment installer ce qui est nécessaire au bon fonctionnement de CUDA. Cette installation permet également d'utiliser des applications [[wpfr>OpenCL|OpenCL]].

===== Pré-requis =====
  * Soyez sûr que votre carte graphique supporte Cuda en vous référant à [[http://www.nvidia.fr/object/cuda_gpus_fr.html|cette page]].
  * Il est nécessaire d'avoir un pilote Nvidia __propriétaire__ d'une version supérieure ou égale à 295.xx (disponible dans les dépôts). Vous pouvez l'installer [[nvidia.run|manuellement]] ou [[nvidia#methode_automatique|depuis les dépôts]], cette dernière méthode étant à privilégier.
  * Avoir [[:tutoriel:comment_installer_un_paquet|installé les paquets]] **[[apt>libxi-dev,libxmu-dev,freeglut3-dev,build-essential,binutils-gold|libxi-dev, libxmu-dev, freeglut3-dev, build-essential, et binutils-gold]]**.\\ Pour faire simple, avec l'outil [[:apt-get]], dans le [[:terminal]] tapez: <code>
sudo apt-get install libxi-dev libxmu-dev freeglut3-dev build-essential binutils-gold
</code>

===== Installation de CUDA ===== 
Il va falloir installé deux programmes: "CUDA Toolkit" et "GPU Computing SDK".\\
Le **GPU Computing SDK** fournit des exemples de codes sur lesquels vous pouvez vous baser pour faire du développement: ce [[wpfr>Kit_de_développement|SDK]] est donc inutile si vous ne prévoyez pas de programmer avec Cuda. Cependant, vous l'installerez quand même afin de [[#test|vérifier que Cuda fonctionne bien]].


<note tip>**Installation simplifié** \\
Nvidia met désormais à disposition des .deb et des rpm afin d'installer Cuda, ce qui facilite grandement la procédure d'installation.
Se rendre https://developer.nvidia.com/cuda-downloads, télécharger le .deb correspondant à votre version d'ubuntu et suivre la procédure d'installation décrite sur [[http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html|cette page]]. N'oubliez pas de faire sudo apt-get update && sudo apt-get install cuda </note>
==== Téléchargements ====
Téléchargez sur votre Bureau les programmes selon votre [[:architecture matérielle]]:
  * __32bits__:<code>cd ~/Bureau
wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/cudatoolkit_4.2.9_linux_32_ubuntu11.04.run
wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/sdk/gpucomputingsdk_4.2.9_linux.run
</code>
  * __64bits__:<code>cd ~/Bureau
wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/sdk/gpucomputingsdk_4.2.9_linux.run
</code>

La version pour [[:natty|Ubuntu 11.04]] fonctionne sous [[:oneiric|Ubuntu 11.10]], [[:precise|12.04]] et [[:ubuntu| 13.04]].

==== Installation du Toolkit ====
Depuis votre dossier **Bureau**, changez les [[:droits]] du fichier **cudatoolkit**  [[#Téléchargements|précédemment téléchargé]] puis exécutez-le en [[:sudo|superutilisateur]]:
<code>
cd ~/Bureau
chmod +x cudatoolkit_4.2.9_linux_*
sudo ./cudatoolkit_4.2.9_linux_* 
</code>

Lorsqu'il vous demandera:
<code>Enter install path (default /usr/local/cuda, '/cuda' will be appended):</code>
tapez **/opt**.

==== Installation du SDK ====
Comme [[#Installation du Toolkit|précédemment]], depuis votre dossier **Bureau**, changez les [[:droits]] du fichier **gpucomputingsdk** [[#Téléchargements|précédemment téléchargé]] puis exécutez-le en utilisateur normal cette fois-ci : 
<code>
cd ~/Bureau
chmod +x gpucomputingsdk_4.2.9_linux.run
./gpucomputingsdk_4.2.9_linux.run
</code>

Lorsqu'il vous demandera:
<code>Enter install path (default ~/NVIDIA_GPU_Computing_SDK):</code>
Faites **[entrée]** pour utiliser le chemin par défaut, et tapez une fois de plus **/opt** lorsqu'il vous demandera:
<code>Enter CUDA install path (default /usr/local/cuda):</code>

==== Préparation ====
Mettez à jour les variables, en tapant dans le [[:terminal]]:
<code>
export PATH=$PATH:/opt/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64
echo 'export PATH=$PATH:/opt/cuda/bin' >> ~/.bash_profile
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64' >> ~/.bash_profile
</code>

==== Compilation du SDK ====
[[:compilation|Compilez]] les applications exemples proposées par le SDK, qui vont vous servir dans la [[#test|section suivante]] à tester le bon fonctionnement de Cuda:
<code>
cd ~/NVIDIA_GPU_Computing_SDK/C
LINKFLAGS=-L/usr/lib/nvidia-current/ make cuda-install=/opt/cuda
</code>

==== Test ====
Le dossier **~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/** contient de petites applications qui servent d'exemple d'utilisation de Cuda.

Lancez une de ces applications:
<code>
~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/./fluidsGL
</code>
{{:nvidia:Cuda_test.png?250|Test de Cuda}}

Comme vous pouvez le voir, Cuda fonctionne parfaitement.

Vous pouvez aussi tester un programme exploitant OpenCL (qu'il va falloir compiler):
<code>
cd ~/NVIDIA_GPU_Computing_SDK/OpenCL/
make
cd ~/NVIDIA_GPU_Computing_SDK/OpenCL/bin/linux/release
./oclSimpleGL
</code>
Vous pouvez à présent faire du GPU Computing, et aider la science avec [[Boinc]] par exemple.

==== Nettoyage ====
Maintenant que Cuda est installé, les deux fichiers d'installation ne nous sont plus nécessaires, vous pouvez les supprimer.
<code>
cd ~/Bureau
rm cudatoolkit_4.2.9_linux_*
rm gpucomputingsdk_4.2.9_linux.run
</code>
Si vous ne voulez plus du SDK, vous pouvez le supprimer également:
<code>
rm -r ~/NVIDIA_GPU_Computing_SDK
</code>

===== Désinstallation de CUDA =====
Si vous souhaitez effacer toute trace de Cuda, [[:tutoriel:comment_supprimer_un_fichier|supprimez]] les dossiers **/opt/cuda** (avec les droits [[:sudo|root]]) et **~/NVIDIA_GPU_Computing_SDK**:
<code>
rm -r ~/NVIDIA_GPU_Computing_SDK
sudo rm -rf /opt/cuda
</code>
et [[:tutoriel:comment_modifier_un_fichier|ouvrez]] le [[:fichier_cache|fichier caché]] dans votre Dossier Personnel **.bash_profile** pour y effacer les lignes suivantes:
<file>
export PATH=$PATH:/opt/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64
</file>

===== Voir aussi =====
  * [[http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_Getting_Started_Linux.pdf|CUDA Getting Started Linux]] (EN)
  * [[http://www.nvidia.fr/object/what_is_cuda_new_fr.html|Qu’est-ce que CUDA ?]]
  * [[wpfr>OpenCL|OpenCL]]
  * [[nvidia|Cartes graphiques Nvidia]]
  * [[nvidia.run|Installation manuelle des pilotes propriétaires NVIDIA]]

----
//Contributeurs principaux : rustyBSD//